package com.yvon.maple.service.system.mapper;

import com.yvon.boot.mybatis.BaseMapper;
import com.yvon.maple.service.system.dto.RolePermissionDTO;
import com.yvon.maple.service.system.entity.RolePermission;
import com.yvon.maple.service.system.vo.RoleResourceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * @author : Yvon
 * @since : 2021-09-27
 */
@Mapper
public interface RolePermissionMapper extends BaseMapper<RolePermission> {

    /**
     * 通过角色标识查询角色权限信息
     *
     * @param roleIds 角色代码
     * @return List<RolePermissionDTO>
     * @author : Yvon / 2022-05-07
     */
    List<RolePermissionDTO> getByRoleIds(@Param("roleIds")Collection<Long> roleIds);

    /**
     * 查询角色资源
     *
     * @return List<RoleResourceVo>
     * @author : Yvon / 2022-05-07
     */
    List<RoleResourceVo> getRoleResource();

    /**
     * 通过用户id查询权限Code
     *
     * @param userId 用户id
     * @return {@link List}<{@link String}>
     */
    List<String> getPermsByUserId(Long userId);
}
